1. Field of the Invention
The present invention relates to an operation assignment method and its apparatus using a processor having a plurality of functional units to selectively assign operations constituting an operation sequence to the functional units, thereby effectively executing the operation sequence.
2. Description of the Related Art
A technique for causing a processor having a plurality of functional units to parallelly execute the individual operations constituting an operation sequence is available as a technique for executing the operation sequence at high speed. In general, units having different functions and units having identical or equivalent functions are present in the plurality of functional units in the processor. It is, therefore, important to properly determine an assignment correspondence between each operation and each functional processor so as to processing.
The related art in which a plurality of operations are selectively assigned to a plurality of functional units and the respective operations are executed is described in the following literature in detail:
"Bulldog; A Compiler for VLIW Architectures" John R. Ellis, The MIT Press PA1 (a) a functional unit having a smallest clock count for executing the instruction; PA1 (b) a functional unit having a smallest clock count to execute a subsequent operation and selected from assignable functional units obtained with reference to the operator information management section; and PA1 (c) a functional unit having a predetermined priority.
Operations (i.e., types of operation) executable in each functional unit are limited depending on its process functions. For this reason, operations must be selectively assigned to functional units capable of executing specific operations in accordance with the types of operations. In order to selectively decide an assigning correspondence between the functional units and the operations, the types of operations and the functions of functional units must be carefully taken into consideration.
In practice, when a given operation is to be assigned to a given functional unit after consideration of such a constraint, the given unit has often been used for (or assigned to) another operation and cannot be assigned with the given operation. In this case, the assignment process of the given operation is delayed until the execution of the current operation in the given functional unit is completed, or an assignment destination of the given operation must be changed to another functional unit having an identical function.
A functional unit which executes one operation with a given clock count may execute another operation with a clock count different from the given clock count. When the assignment destination (i.e., target functional unit) of the given operation is changed, an execution process time of the given instruction may be prolonged against expectation.
When the assignment process is executed upon selection of only functional units having smaller clock counts (so-called "high speed") required to execute operations, assignment of operations is concentrated on only a specific functional unit. As a result, the assignment process speed of the operation sequence as a whole and the execution speed tend to be undesirably reduced.
It is difficult to increase an execution speed of an operation by considering only the function of each functional unit and the types of operations. Demand has arisen for realizing a method and apparatus for efficiently assigning operations.
In a conventional system for selectively assigning a plurality of operations constituting an operation sequence to a plurality of functional units and parallelly executing the operations, not only the functions of the functional units and the types of operation to be assigned to target units are taken into consideration, but also the operation assignment process must be executed while assignment conditions of the operations assigned to the plurality of functional units are taken into consideration. Therefore, an "operation assigning technique" is required to perform a (complicated) assignment process at high speed and efficiently execute the operations.